package Classes;

import java.io.Serializable;
import java.util.*;

/**
 * Classe para representar uma estante.
 *
 * @author Felipe
 */
public class Estante implements Serializable{
    
    private String nomeDaEstante;
    private List<Item> estante = new ArrayList<>();

    /**
     * Construtor de uma Estante.
     * 
     * @param nomeDaEstante 
     *          Nome da estante.
     * @throws Exception 
     *          Excecao caso o nome da estante seja nulo ou vazio.
     */
    public Estante(String nomeDaEstante) {
        this.nomeDaEstante = nomeDaEstante;
    }
    
    /**
     * Adiciona um item na estante.
     * 
     * @param item
     *          O item a ser adicionado.
     */
    public void adicioarItem(Item item) {
            estante.add(item);
    }

    /**
     * Remove um item da estante.
     * 
     * @param item
     *          O item a ser removido.
     */
    public void removerItem(Item item) {
            estante.remove(item);
    }

    /**
     * Retorna o nome da estante.
     * 
     * @return 
     *          O nome da estante.
     */
    public String getNomeDaEstante() {
            return nomeDaEstante;
    }

    /**
     * Retorna todos itens da estante.
     * 
     * @return 
     *          Itens da estante.
     */
    public List<Item> getLista() {
        return estante;
    }
    
}
